﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace CityGames
{
    public partial class FormSociosAlta : Form
    {
       
        static private FormContenedor contenedor;
        private ErrorProvider epNombre;
        private ErrorProvider epApellidos;
        private ErrorProvider epDni;
        private ErrorProvider epDireccion;
        private ErrorProvider epLocalidad;
        private ErrorProvider epProvincia;
        private ErrorProvider epCP;
        private ErrorProvider epTelefono;
        private ErrorProvider epEmail;
        private ErrorProvider epFecha;
        private DataRow dr;
        private bool modificar;
        private bool visualizar;
        private string ruta;

        // WEBCAM //

        WebCam cam;
        bool cam_iniciada = false;
        bool fotocapturada = false;
        bool editando = false;
        bool volverAFoto = false;
        
        ///////////////////////
        

        private string dniSinModificar;

        public FormSociosAlta()
        {
            InitializeComponent();
        }

        private void FormSociosAlta_Load(object sender, EventArgs e)
        {
            try
            {
                contenedor = (FormContenedor)MdiParent;

                modificar = false;
                visualizar = false;

                dniSinModificar = "";
                ruta = "";

                epNombre = new ErrorProvider();
                epNombre.SetIconAlignment(tbNombre, ErrorIconAlignment.MiddleRight);
                epNombre.SetIconPadding(tbNombre, 2);
                epNombre.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epApellidos = new ErrorProvider();
                epApellidos.SetIconAlignment(tbApellidos, ErrorIconAlignment.MiddleRight);
                epApellidos.SetIconPadding(tbApellidos, 15);
                epApellidos.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epDni = new ErrorProvider();
                epDni.SetIconAlignment(tbDni, ErrorIconAlignment.MiddleRight);
                epDni.SetIconPadding(tbDni, 15);
                epDni.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epDireccion = new ErrorProvider();
                epDireccion.SetIconAlignment(tbDireccion, ErrorIconAlignment.MiddleRight);
                epDireccion.SetIconPadding(tbDireccion, 15);
                epDireccion.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epLocalidad = new ErrorProvider();
                epLocalidad.SetIconAlignment(tbLocalidad, ErrorIconAlignment.MiddleRight);
                epLocalidad.SetIconPadding(tbLocalidad, 15);
                epLocalidad.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epProvincia = new ErrorProvider();
                epProvincia.SetIconAlignment(tbProvincia, ErrorIconAlignment.MiddleRight);
                epProvincia.SetIconPadding(tbProvincia, 15);
                epProvincia.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epCP = new ErrorProvider();
                epCP.SetIconAlignment(tbCP, ErrorIconAlignment.MiddleRight);
                epCP.SetIconPadding(tbCP, 15);
                epCP.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epTelefono = new ErrorProvider();
                epTelefono.SetIconAlignment(tbTelefono, ErrorIconAlignment.MiddleRight);
                epTelefono.SetIconPadding(tbTelefono, 15);
                epTelefono.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epEmail = new ErrorProvider();
                epEmail.SetIconAlignment(tbEmail, ErrorIconAlignment.MiddleRight);
                epEmail.SetIconPadding(tbEmail, 15);
                epEmail.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

				epFecha = new ErrorProvider();
                epFecha.SetIconAlignment(dtpFechaNac, ErrorIconAlignment.MiddleRight);
                epFecha.SetIconPadding(dtpFechaNac, 10);
                epFecha.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;
                //WEBCAM
                cam = new WebCam();
                cam.InitializeWebCam(ref pbFoto);
                btFotoCancel.Enabled = false;
                //
                pbFoto.ImageLocation = "C:/Fotos/defecto.jpg"; 





            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private bool ValidarCampos()
        {
            Socio nuevoSocio = new Socio();

            bool resultado = true;
            string errores = "Se han encontrado los siguientes errores:\n\n";

            string expReTbNombre = @"^\D+$";
            string expReTbApellidos = @"^\D+$";
            string expReTbDni = @"^[0-9]{8}$";
            string expReTbDireccion = @"^.+$";
            string expReTbLocalidad = @"^\D+$";
            string expReTbProvincia = @"^\D+$";
            string expReTbCp = @"^(0[1-9]|5[0-2]|[1-4][0-9])[0-9]{3}$";
            string expReTbTelefono = @"^[0-9]{9}$";
            string expReTbEmail = @"^(([^<>()[\]\\.,;:\s@\""]+(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$";

            String nombre = tbNombre.Text;
            String apellidos = tbApellidos.Text;
            String dni = tbDni.Text;
            Boolean sexoHombre = rbSexoHombre.Checked;
            Boolean sexoMujer = rbSexoMujer.Checked;
            DateTime fecha = dtpFechaNac.Value;
            String direccion = tbDireccion.Text;
            String localidad = tbLocalidad.Text;
            String provincia = tbProvincia.Text;
            String cp = tbCP.Text;
            String telefono = tbTelefono.Text;
            String email = tbEmail.Text;

           
            try
            {
                if (nombre != "" && apellidos != "" && dni != "" && (sexoHombre || sexoMujer) && direccion != "" && localidad != "" && provincia != "" && cp != "" && telefono != "" && email != "")
                {
                    if (!modificar)
                    {
                        if(nuevoSocio.ExisteSocio(dni, tbLetraDni.Text))
                        {
                            resultado = false;
                            errores += "El DNI está actualmente en uso";
                            epDni.SetError(tbDni, "El DNI "  + tbNombre.Text + "ya está registrado");
                            tbDni.Focus();
                            tbDni.SelectAll();
                        }
                        else
                        {
                            epDni.SetError(tbDni, null);
                        }
                    }
                    if (Regex.Match(dni, expReTbDni).Success)
                    {
                        epDni.SetError(tbDni, null);
                    }
                    else
                    {
                        errores += "- DNI incorrecto\n";
                        resultado = false;
                        epDni.SetError(tbDni, "El DNI sólo acepta ocho dígitos entre 0-9");
                        tbDni.Focus();
                        tbDni.SelectAll();
                    }

                    if (Regex.Match(nombre, expReTbNombre).Success)
                    {
                        epNombre.SetError(tbNombre, null);
                    }
                    else
                    {
                        errores += "- Nombre incorrecto\n";
                        resultado = false;
                        epNombre.SetError(tbNombre, "El nombre únicamente permite caracteres de texto");
                        tbNombre.Focus();
                        tbNombre.SelectAll();
                    }

                    if (Regex.Match(apellidos, expReTbApellidos).Success)
                    {
                        epApellidos.SetError(tbApellidos, null);
                    }
                    else
                    {
                        errores += "- Apellidos incorrecto\n";
                        resultado = false;
                        epApellidos.SetError(tbApellidos, "Los apellidos únicamente permiten caracteres de texto");
                        tbApellidos.Focus();
                        tbApellidos.SelectAll();
                    }

                    if ((DateTime.Compare(DateTime.Today, dtpFechaNac.Value) >= 0)) // Si la fecha de hoy es mayor que la que elige el usuario
                    {
                        epFecha.SetError(dtpFechaNac, null);
                    }
                    else
                    {
                        resultado = false;
                        errores += "- La fecha de nacimiento no puede ser superior al dia de hoy.\n";
                        epFecha.SetError(dtpFechaNac, "La fecha de nacimiento no puede ser superior al dia de hoy.");
                    }

                    if (Regex.Match(direccion, expReTbDireccion).Success)
                    {
                        epDireccion.SetError(tbDireccion, null);
                    }
                    else
                    {
                        errores += "- Direccion incorrecta\n";
                        resultado = false;
                        epDireccion.SetError(tbDireccion, "Formato incorrecto"); // Ya lo cambio luego xD
                        tbDireccion.Focus();
                        tbDireccion.SelectAll();
                    }

                    if (Regex.Match(localidad, expReTbLocalidad).Success)
                    {
                        epLocalidad.SetError(tbLocalidad, null);
                    }
                    else
                    {
                        errores += "- Localidad incorrecta\n";
                        resultado = false;
                        epLocalidad.SetError(tbLocalidad, "Formato incorrecto"); // A cambiar
                        tbLocalidad.Focus();
                        tbLocalidad.SelectAll();
                    }

                    if (Regex.Match(provincia, expReTbProvincia).Success)
                    {
                        epProvincia.SetError(tbProvincia, null);
                    }
                    else
                    {
                        errores += "- Provincia incorrecta\n";
                        resultado = false;
                        epProvincia.SetError(tbProvincia, "Formato incorrecto"); // A cambiar
                        tbProvincia.Focus();
                        tbProvincia.SelectAll();
                    }

                    if (Regex.Match(cp, expReTbCp).Success)
                    {
                        epCP.SetError(tbCP, null);
                    }
                    else
                    {
                        errores += "- Codigo Postal incorrecto\n";
                        resultado = false;
                        epCP.SetError(tbCP, "El Codigo Postal debe contener 5 dígitos");
                        tbCP.Focus();
                        tbCP.SelectAll();
                    }


                    if (Regex.Match(telefono, expReTbTelefono).Success)
                    {
                        epTelefono.SetError(tbTelefono, null);
                    }
                    else
                    {
                        errores += "- Telefono incorrecto\n";
                        resultado = false;
                        epTelefono.SetError(tbTelefono, "El teléfono debe contener únicamente 9 dígitos");
                        tbTelefono.Focus();
                        tbTelefono.SelectAll();
                    }

                    if (Regex.Match(email, expReTbEmail).Success)
                    {
                        epEmail.SetError(tbEmail, null);
                    }
                    else
                    {
                        errores += "- Email incorrecto\n";
                        resultado = false;
                        epEmail.SetError(tbEmail, "El Email debe tener formato xxxxx@yyyyy.zz");
                        tbEmail.Focus();
                        tbEmail.SelectAll();
                    }
                    if (!resultado)
                        MessageBox.Show(errores, "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Rellena todos los campos", "Se han encontrado los siguientes errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    resultado = false;
                }
            }
            catch (Exception ex)
            {
                resultado = false;
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return resultado;
        }

        private void BtRegistrar_Click(object sender, EventArgs e)
        {
            try
            {
                Socio nuevoSocio = new Socio();

                if (ValidarCampos())
                {
                    string sexo ="";
                    if (rbSexoHombre.Checked)
                        sexo = "Hombre";
                    else
                        sexo = "Mujer";

                    if (!modificar)
                    {
                        nuevoSocio.Nombre = tbNombre.Text;
                        nuevoSocio.Apellidos = tbApellidos.Text;
                        nuevoSocio.Dni = tbDni.Text + tbLetraDni.Text;
                        nuevoSocio.Sexo = sexo;
                        nuevoSocio.Fecha = dtpFechaNac.Value;
                        nuevoSocio.Direccion = tbDireccion.Text;
                        nuevoSocio.Localidad = tbLocalidad.Text;
                        nuevoSocio.Provincia = tbProvincia.Text;
                        nuevoSocio.CP = tbCP.Text;
                        nuevoSocio.Telefono = tbTelefono.Text;
                        nuevoSocio.Email = tbEmail.Text;
                        nuevoSocio.Foto = ruta;

                        if (nuevoSocio.InsertarSocio()) 
                        {
                            MessageBox.Show("Socio insertado correctamente.", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            contenedor.hijoFormSociosGestion.CargarDataGridViewSocios();
                            contenedor.hijoFormSociosGestion.Focus();
                        }
                        else
                        {
                            MessageBox.Show("Ha ocurrido un error en la inserción.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        dr["Nombre"] = tbNombre.Text;
                        dr["Apellidos"] = tbApellidos.Text;
                        dr["DNI"] = tbDni.Text + tbLetraDni.Text;
                        dr["Sexo"] = sexo;
                        dr["FechaNac"] = dtpFechaNac.Value;
                        dr["Direccion"] = tbDireccion.Text;
                        dr["Localidad"] = tbLocalidad.Text;
                        dr["Provincia"] = tbProvincia.Text;
                        dr["CP"] = tbCP.Text;
                        dr["Telefono"] = tbTelefono.Text;
                        dr["E_mail"] = tbEmail.Text;
                        dr["Foto"] = ruta;

                        MessageBox.Show("Socio modificado correctamente", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        
                        dniSinModificar = "";
                        modificar = false;

                        contenedor.hijoFormSociosGestion.ModificarDatos(dr);
                        contenedor.hijoFormSociosGestion.UpdateSocio(dr);  // Modifico en la BD
                        contenedor.hijoFormSociosGestion.Focus();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado los siguientes errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btLimpiar_Click(object sender, EventArgs e)
        {
            try
            {
                if (modificar)
                {
                    RecibirDatos(dr);
                }
                else
                    Limpiar();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void Limpiar()
        {
            try
            {
                tbNombre.Text = "";
                tbApellidos.Text = "";
                tbDni.Text = "";
                tbLetraDni.Text = "";
                rbSexoHombre.Checked = true;
                rbSexoMujer.Checked = false;
                dtpFechaNac.Value = DateTime.Now;
                tbDireccion.Text = "";
                tbLocalidad.Text = "";
                tbProvincia.Text = "";
                tbCP.Text = "";
                tbTelefono.Text = "";
                tbEmail.Text = "";
                cam.Stop();
                pbFoto.ImageLocation = "C:/Fotos/defecto.jpg";
                cam_iniciada = false;
                editando = false;
                fotocapturada = false;
                volverAFoto = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbDni_Leave(object sender, EventArgs e)
        {
            try
            {
                string expReTbDni = @"^[0-9]{8}$";

                if (tbDni.Text.Length == 8 && (Regex.Match(tbDni.Text, expReTbDni).Success))
                {
                    int nif = int.Parse(tbDni.Text);
                    int numeroModulo = nif % 23;
                    string cadenaLetra = "TRWAGMYFPDXBNJZSQVHLCKE";
                    tbLetraDni.Text = cadenaLetra.Substring(numeroModulo, 1);
                }
                else
                    tbLetraDni.Text = "";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


        public void RecibirDatos(DataRow datos)
        {
            
            string sexo="";

            string dniFinal = "";
            char[] dni = new char[9] ;
            string auxDni = "";
            try
            {
                dr = datos;
                
                tbNombre.Text = datos["Nombre"].ToString();
                tbApellidos.Text = datos["Apellidos"].ToString();

                auxDni = datos["DNI"].ToString();
                for (int i = 0; i < 9; i++)
                    dni[i] = auxDni[i];
                for(int i = 0; i < 8; i++)
                    dniFinal += dni[i].ToString();

                tbDni.Text = dniFinal;
                tbLetraDni.Text = (dni[8]).ToString();

                sexo = datos["Sexo"].ToString();
                if (sexo == "Hombre")
                    rbSexoHombre.Checked = true;
                else
                    rbSexoMujer.Checked = true;
                
                dtpFechaNac.Value = DateTime.Parse(datos["FechaNac"].ToString());
                tbDireccion.Text = datos["Direccion"].ToString();
                tbLocalidad.Text = datos["Localidad"].ToString();
                tbProvincia.Text = datos["Provincia"].ToString();
                tbCP.Text = datos["CP"].ToString();
                tbTelefono.Text = datos["Telefono"].ToString();
                tbEmail.Text = datos["E_mail"].ToString();
                ruta = datos["Foto"].ToString();
                if (ruta != "")
                    pbFoto.ImageLocation = ruta;
                else
                    pbFoto.ImageLocation = "C:/Fotos/defecto.jpg";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void VisualizarDatos(DataRow datos)
        {
            try
            {
                RecibirDatos(datos);
                modificar = false;
                visualizar = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void ModificarDatos(DataRow datos)
        {
            try
            {
                RecibirDatos(datos);
                modificar = true;
                visualizar = false;
                dniSinModificar = datos["DNI"].ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void FormSociosAlta_Activated(object sender, EventArgs e)
        {
            try
            {
                btLimpiar.Text = "Limpiar";
                tbNombre.Enabled = !visualizar;
                tbApellidos.Enabled = !visualizar;
                tbDni.Enabled = !visualizar;
                rbSexoHombre.Enabled = !visualizar;
                rbSexoMujer.Enabled = !visualizar;
                dtpFechaNac.Enabled = !visualizar;
                tbDireccion.Enabled = !visualizar;
                tbLocalidad.Enabled = !visualizar;
                tbProvincia.Enabled = !visualizar;
                tbCP.Enabled = !visualizar;
                tbTelefono.Enabled = !visualizar;
                tbEmail.Enabled = !visualizar;
                btRegistrar.Enabled = !visualizar;
                btFotoCap.Enabled = !visualizar;
                btLimpiar.Enabled = !visualizar;
                
                //WEBCAM

                btFotoCap.Text = "Iniciar";
                btFotoCancel.Text= "Cancelar";
                btFotoCancel.Enabled = false;
                //
                epNombre.SetError(tbNombre, null);
                epApellidos.SetError(tbApellidos, null);
                epDni.SetError(tbDni, null);
                epDireccion.SetError(tbDireccion, null);
                epLocalidad.SetError(tbLocalidad, null);
                epProvincia.SetError(tbProvincia, null);
                epCP.SetError(tbCP, null);
                epTelefono.SetError(tbTelefono, null);
                epEmail.SetError(tbEmail, null);

                if (visualizar)
                {
                    lbTitulo.Text = "Visualizar Socio";
                    btCancelar.Text = "Atras";
                }
                else if (modificar)
                {
                    tbDni.Enabled = false;
                    lbTitulo.Text = "Editar Socio";
                    btLimpiar.Text = "Deshacer";
                    btRegistrar.Text = "Guardar";
                }
                else
                {
                    lbTitulo.Text = "Nuevo Socio";
                }
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }

        private void btCancelar_Click(object sender, EventArgs e)
        {
            try
            {
                if (visualizar)
                {
                    visualizar = false;
                    contenedor.hijoFormSociosGestion.Focus();
                }
                else if (modificar)
                {
                    modificar = false;
                    contenedor.hijoFormSociosGestion.Focus();
                }
                else
                {
                    contenedor.hijoFormMenuPrincipal.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void NuevoSocio(object sender, EventArgs e)
        {
            try
            {
                modificar = false;
                visualizar = false;
                Limpiar();
                FormSociosAlta_Activated(sender, e);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        //WEBCAM

        private void btFotoCap_Click(object sender, EventArgs e)
        {
            try
            {
                if (!cam_iniciada && !fotocapturada && !editando)
                {
                    if (ValidarCampos())
                    {
                        cam.Start();
                        cam_iniciada = true;
                        btFotoCap.Text = "Capturar";
                        btFotoCancel.Text = "Cancelar";
                        btFotoCancel.Enabled = true;
                    }
                    
                }
                else if (cam_iniciada && !editando)
                {
                    cam.Stop();
                    btFotoCap.Text = "Guardar";
                    btFotoCancel.Text = "Limpiar";
                    fotocapturada = true;
                    cam_iniciada = false;
                    btFotoCancel.Enabled = true;
                }
                else if (fotocapturada)
                {
                    ruta = Helper.SaveImageCapture(pbFoto.Image, tbDni.Text);
                    btFotoCap.Text = "Cambiar";
                    btFotoCancel.Enabled = false;
                    fotocapturada = false;
                    editando = true;
                }
                else if (!cam_iniciada && !fotocapturada && editando)
                {
                    cam.Start();
                    cam_iniciada = true;
                    btFotoCap.Text = "Capturar";
                    btFotoCancel.Text = "Atras";
                    btFotoCancel.Enabled = true;
                    volverAFoto = true;
                    editando = false;
                }
                else if (cam_iniciada && editando)
                {
                    cam.Start();
                    cam_iniciada = true;
                    btFotoCap.Text = "Capturar";
                    btFotoCancel.Text = "Atras";
                    btFotoCancel.Enabled = true;
                    volverAFoto = true;
                    editando = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void btFotoCancel_Click(object sender, EventArgs e)
        {
            if (cam_iniciada && !volverAFoto) 
            {
                cam.Stop();
                pbFoto.ImageLocation = "C:/Fotos/defecto.jpg";
                btFotoCancel.Enabled = false;
                btFotoCap.Text = "Iniciar";
                cam_iniciada = false;                
            }
            else if (fotocapturada)
            {
                cam.Start();
                btFotoCancel.Text = "Cancelar";
                btFotoCap.Text = "Capturar";
                cam_iniciada = true;
                fotocapturada = false;
            }
            else if (volverAFoto && cam_iniciada)
            { 
                //RECUPERAR LA FOTO DE LA BD
                pbFoto.ImageLocation = ruta;
                btFotoCap.Text = "Cambiar";
                btFotoCancel.Enabled = false;
                fotocapturada = false;
                editando = true;
                volverAFoto = false;
            }
        }

        private void btFotoCancel_Click_1(object sender, EventArgs e)
        {
            if (cam_iniciada && !volverAFoto)
            {
                cam.Stop(); // poner foto por defecto mejor
                pbFoto.ImageLocation = "C:/Fotos/defecto.jpg";
                btFotoCancel.Enabled = false;
                btFotoCap.Text = "Iniciar";
                cam_iniciada = false;
            }
            else if (fotocapturada)
            {
                cam.Start();
                btFotoCancel.Text = "Cancelar";
                btFotoCap.Text = "Capturar";
                cam_iniciada = true;
                fotocapturada = false;
            }
            else if (volverAFoto && cam_iniciada)
            {
                pbFoto.ImageLocation = ruta;
                btFotoCap.Text = "Cambiar";
                btFotoCancel.Enabled = false;
                fotocapturada = false;
                editando = true;
                volverAFoto = false;
            }
        }
    }
}
